Skip to content

NVIDIA/cuopt-examples

Repository files navigation

cuOpt Examples

NVIDIA cuOpt is a GPU-accelerated combinatorial and linear optimization engine for solving complex route optimization problems such as Vehicle Routing and large Linear Programming problems. This repository contains a collection of examples demonstrating use of NVIDIA cuOpt via service APIs, SDK and Integration with other OSS optimization solvers.

The cuOpt-Resources repository is under MIT License

cuOpt Docs

Quick Start with Docker

The easiest way to get started with these examples is using cuOpt docker image.

Prerequisites

Requirements

For detailed system requirements, please refer to the NVIDIA cuOpt System Requirements documentation.

Specific requirements are listed in each workflow's README.md and in the root directory's requirements.txt files.

Running the Examples

  1. Clone this repository:
git clone https://github.com/NVIDIA/cuopt-examples.git
cd cuopt-examples
  1. Pull the cuOpt docker image:
docker pull nvidia/cuopt:25.05.*
  1. Run the examples:
docker run -it --rm --gpus all --network=host -v $(pwd):/workspace -w /workspace nvidia/cuopt:25.05.* /bin/bash -c "pip install --user -r requirements.txt; jupyter-notebook"
  1. Open your browser with the link provided in the terminal, and you can see the notebooks.

Note

These notebooks have been tested on NVIDIA Brev, Google Colab, and local Jupyter environments. They may work on other platforms as well.

Repository Structure

The repository is organized by use cases, with each directory containing examples and implementations specific to that use case. Each use case directory includes:

  • Example notebooks
  • README.md with specific instructions

Featured Examples

Intra-Factory Transport Optimization

The intra-factory_transport directory contains an example of using the cuOpt SDK API to solve a Capacitated Pickup and Delivery Problem with Time Windows (CPDPTW) for optimizing routes of Autonomous Mobile Robots (AMRs) within a factory environment.

Contributing

We welcome contributions! Please see our CONTRIBUTING.md file for guidelines on how to contribute new examples or improve existing ones.